package com.rc.saas.mini.hlhtcec2.service;

import com.rc.saas.mini.model.hlhtsk.HlhtskBizOperator;
import com.rc.saas.mini.model.hlhtsk.HlhtskBizTenant;
import com.rc.saas.mini.vo.hlhtcec2.*;

/**
 * @author wangzhengwei
 * @create 2021/12/23
 */
public interface HlhtBiz2NotifyService {
    /**
     * 此接口用于平台之间认证Token 的申请， Token 作为全局唯一凭证，调用各接口时均需要使用。
     */
    TokenResult assembleTokenResult(HlhtskBizOperator bizOperator, HlhtskBizTenant bizTenant);

    /**
     * 请求充电基础设施的认证信息
     */
    EquipAuthResult assembleEquipAuthResult(EquipAuthReq equipAuthReq, TokenResult tokenResult, HlhtskBizOperator bizOperator, HlhtskBizTenant bizTenant);

    /**
     * 查询计费策略(市场价，不含折扣和活动的价格)
     */
    EquipBusinessPolicyResult assembleEquipBusinessPolicyResult(EquipBusinessPolicyReq equipBusinessPolicyReq, TokenResult tokenResult,
                                                                HlhtskBizOperator bizOperator, HlhtskBizTenant bizTenant);

    /**
     * 请求启动充电
     */
    StartChargeResult assembleStartChargeResult(StartChargeReq startChargeReq, TokenResult tokenResult, HlhtskBizOperator bizOperator, HlhtskBizTenant bizTenant);

    /**
     * 充电中请求
     */
    EquipChargeStatusResult assembleEquipChargeStatusResult(EquipChargeStatusReq equipChargeStatusReq, TokenResult tokenResult, HlhtskBizOperator bizOperator, HlhtskBizTenant bizTenant);

    /**
     * 请求停止充电
     */
    StopChargeResult assembleStopChargeResult(StopChargeReq stopChargeReq, TokenResult tokenResult, HlhtskBizOperator bizOperator, HlhtskBizTenant bizTenant);
}
